<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE>The runtime plug-in model</TITLE>

<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>
The runtime plug-in model</H2>
<P >
The platform runtime engine is started when a user starts an application developed with Eclipse.  
The runtime implements the basic <b>plug-in</b> model and infrastructure used by the platform.  
It keeps track of all installed plug-ins and the functionality that they provide. 
</p>
<p>A plug-in is a structured component that contributes code (or documentation or both) to the system and describes
it in a structured way. Plug-ins can define <b>extension points</b>, well-defined 
function points that can be extended by other plug-ins. When a plug-in contributes an implementation for an 
extension point, we say that it adds an <b>extension</b> to the platform. These extensions and extension points
are declared in the plug-ins's manifest (<b>plugin.xml</b>) file.
</p>
<P >
Using a common extension model provides a structured way for plug-ins to describe the ways they can be extended, and 
for client plug-ins to describe the extensions they supply.  Defining an extension point is much like defining 
any other API.  The only difference is that the extension point is declared using XML instead of a code signature.
Likewise, a client plug-in uses XML to describe its specific extension to the system.  
</p>
<p>A general goal of the runtime is that the end user should not pay a memory 
  or performance penalty for plug-ins that are installed, but not used. The declarative 
  nature of the platform extension model allows the runtime engine to determine 
  what extension points and extensions are supplied by a plug-in without ever 
  running it. Thus, many plug-ins can be installed, but none will be activated 
  until a function provided by a plug-in has been requested according to the user's 
  activity. This is an important feature in providing a scalable, robust platform. 
</p>


</BODY>
</HTML>